$(function () {
  var laypage = layui.laypage;
  // 定义查询的对象 请求时传递
  var q = {
    pagenum: 1,	// 页码值 默认第一页
    pagesize: 2, // 每页显示多少条数据
    cate_id: '', // 文章分类的 Id
    state: ''
  }

  // 获取文章列表数据
  initTable();
  function initTable() {
    $.ajax({
      type: "GET",  //默认get
      url: "/my/article/list",
      data: q,
      success: function (res) {  //请求成功回调
        if (res.status !== 0) {
          return layui.layer.msg('获取文章列表失败！');
        }

        // 调用template 渲染结构
        var htmlStr = template('tpl-table', res)
        $('tbody').html(htmlStr);
        // 调用渲染分页
        renderPage(res.total);
      }
    })
  }

  // 定义事件过滤器
  template.defaults.imports.dataFormat = function (data) {
    return moment(data).format('YYYY-MM-DD hh:mm:ss');
  }

  // 初始化文章分类
  initCate();
  function initCate() {
    $.ajax({
      type: "GET",  //默认get
      url: "/my/article/cates",
      data: q,
      success: function (res) {  //请求成功回调
        if (res.status !== 0) {
          return layui.layer.msg('获取文章分类失败！');
        }

        // 调用template 渲染结构
        var htmlStr = template('tpl-cate', res)
        $('select[name=cate_id]').html(htmlStr)

        // 注意：渲染机制 简单来说就是异步穿件插入数据 可能不会被ui组件监听到 没有重新渲染
        layui.form.render();
      }
    })
  };

  // 筛选
  $('#form-search').on('submit', function (e) {
    e.preventDefault();
    // 获取到表单的值
    var cate_id = $('[name=cate_id]').val();
    var state = $('[name=state]').val();

    // 动态赋值
    q.cate_id = cate_id;
    q.state = state;
    // 根据筛选条件重新渲染
    initTable();
  })

  // 渲染分页方法
  function renderPage(count) {
    laypage.render({
      elem: 'page' //注意，这里的 test1 是 ID，不用加 # 号
      , count: count //数据总数，从服务端得到
      , limit: q.pagesize // 每页显示的条数 计算分页
      // ,limits: [2, 3, 5, 10]
      , curr: q.pagenum // 起始页
      , layout: ['count', 'limit', 'prev', 'page', 'next', 'skip']
      , limits: [2, 3, 5, 10]
      , jump: function (obj, first) {
        //obj包含了当前分页的所有参数，比如：
        // console.log(obj.curr); //得到当前页，以便向服务端请求对应页的数据。
        // console.log(obj.limit); //得到每页显示的条数
        // 重新渲染当前页
        q.pagenum = obj.curr;
        // 重新渲染当前页显示的条数
        q.pagesize = obj.limit;

        // initTable();
        //首次不执行
        if(!first){
          initTable();
        }
      }
    });
  };

  // 删除操作
  $('tbody').on('click', '.btn-del', function () {
    var id = $(this).data('id');
    var len = $('.btn-del').length;
    // 询问是否删除
    layer.confirm('确认删除?', {icon: 3, title:'提示'}, function(index){
      $.ajax({
        type: "GET",  //默认get
        url: "/my/article/delete/" + id,
        success: function (res) {
          if (res.status !== 0) {
            return layui.layer.msg(res.message);
          }
          layui.layer.msg('删除文章成功！');
          if (len === 1) {
            // 如果len等于1 说明没有数据了
            q.pagenum = q.pagenum === 1 ? 1 : q.pagenum - 1;
          }
          initTable();
          layui.layer.close(index);
        }
      })
    });
  })
})